//
//  ZXXUserAccountTools.swift
//  M-Weibo
//
//  Created by ZXX on 16/4/19.
//  Copyright © 2016年 ZXX. All rights reserved.
//

import UIKit

class ZXXUserAccountTools: NSObject {
//设置单例全局访问点
    static let sharedUserAccountTools = ZXXUserAccountTools()
    // userAccount
    var userAccount: ZXXUserAccount?
    

    
    // 判断我们的用户是否登录
    var isLogin: Bool{
        if accessToken != nil{
            return true
        }else{
            return false
        }
    }
    // 访问令牌
    var accessToken: String?{
        // 已经保存我们的用户数据了 但是我们的判断我们的访问令牌是否过期
        // 如果没有过期 直接返回
        // 如果过期了 返回 nil
        if userAccount?.access_token != nil{
            // 没有过期
            if !isExpires{
                return userAccount?.access_token
            }else{
                // 过期了
                return nil
            }
        }else{
            // 当我们第一次登陆 获取访问令牌的时候 我们是没有保存数据呢 所以我们应该返回一个nil
            return nil
        }
    }
    // 判断我们的访问令牌是否过期
    var isExpires:Bool{
        // 获取我们过期的时间 和当前时间比较
        let date = userAccount?.expires_Date
        // 没有过期 降序
        if date?.compare(NSDate()) == NSComparisonResult.OrderedDescending{
            return false
        }else{
            // 已经过期
            return true
        }
    }
    
//    路径  路径错误了  要小心啊
    let path = (NSSearchPathForDirectoriesInDomains(.DocumentDirectory, NSSearchPathDomainMask.UserDomainMask, true).last! as NSString).stringByAppendingPathComponent("userAccount.archiver")


    
    
    //每次创建的时 先从沙盒读取 有没有存储的数据
        override init(){
    
            super.init()
    
            userAccount = getUserAccount()
        }
    
    
///  保存数据
    func saveUserAccount(account:ZXXUserAccount){
        // 当保存数据的时候需要先给我们的userAccount 赋值
        userAccount = account
        NSKeyedArchiver.archiveRootObject(account, toFile: path)
    }
    
    func getUserAccount() -> ZXXUserAccount?{
    let result = NSKeyedUnarchiver.unarchiveObjectWithFile(path) as? ZXXUserAccount
        return result
    }
}
